1
Урок 7: Передача обучения — использование знаний
EvoClass-AI002Lecture 7
00:00

Добро пожаловать на урок 7, где мы знакомимся с передачей обучения. Этот метод включает повторное использование модели глубокого обучения, которая уже была обучена на огромном общем наборе данных (например, ImageNet), и адаптацию её для решения новой, специфической задачи (например, нашей задачи по классификации еды). Он необходим для достижения передовых результатов эффективно, особенно когда доступны ограниченные аннотированные данные.

1. Сила предварительно обученных весов

Глубокие нейронные сети учатся выделять признаки иерархически. Нижние слои усваивают фундаментальные понятия (края, углы, текстуры), а более глубокие слои объединяют их в сложные концепции (глаза, колеса, конкретные объекты). Ключевая идея заключается в том, что базовые признаки, изученные на ранних этапах, являются универсально применимыми в большинстве визуальных областей.

Компоненты передачи обучения

  • Исходная задача: Обучение на 14 миллионах изображений и 1000 категориях (например, ImageNet).
  • Целевая задача: Адаптация весов для классификации значительно меньшего набора данных (например, наших конкретных классов для системы «FoodVision»).
  • Используемый компонент: Огромное большинство параметров сети — слои извлечения признаков — используются напрямую.
Экономия ресурсов
Передача обучения радикально снижает два основных барьера ресурсов: Вычислительные затраты (вы избегаете обучения всей модели в течение нескольких дней) и Требования к данным (высокая точность может быть достигнута с сотнями, а не тысячами примеров обучающих данных).
train.py
TERMINALbash — pytorch-env
> Ready. Click "Run" to execute.
>
TENSOR INSPECTOR Live

Run code to inspect active tensors
Question 1
What is the primary advantage of using a model pre-trained on ImageNet for a new vision task?
It requires less labeled data than training from scratch.
It completely eliminates the need for any training data.
It guarantees 100% accuracy immediately.
Question 2
In a Transfer Learning workflow, which part of the neural network is typically frozen?
The final Output Layer (Classifier Head).
The Convolutional Base (Feature Extractor layers).
The entire network is usually unfrozen.
Question 3
When replacing the classifier head in PyTorch, what parameter must you first determine from the frozen base?
The batch size of the target data.
The input feature size (the output dimensions of the last convolutional layer).
The total number of model parameters.
Challenge: Adapting the Classifier Head
Designing a new classifier for FoodVision.
You load a ResNet model pre-trained on ImageNet. Its last feature layer outputs a vector of size 512. Your 'FoodVision' project has 7 distinct food classes.
Step 1
What is the required Input Feature size for the new, trainable Linear Layer?
Solution:
The Input Feature size must match the output of the frozen base layer.
Size: 512.
Step 2
What is the PyTorch code snippet to create this new classification layer (assuming the output is named `new_layer`)?
Solution:
The output size of 512 is the input, and the class count 7 is the output.
Code: new_layer = torch.nn.Linear(512, 7)
Step 3
What is the required Output Feature size for the new Linear Layer?
Solution:
The Output Feature size must match the number of target classes.
Size: 7.